package com.ucarbon.ucarbon.mapper;

import com.ucarbon.ucarbon.entity.CountryNpp;
import com.ucarbon.ucarbon.entity.FunctionValues;
import com.ucarbon.ucarbon.entity.YearCountryNpp;
import com.ucarbon.ucarbon.entity.YearNpp;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

/**
 * <p>
 * 区县, 年份对应NPP的表格 Mapper 接口
 * </p>
 *
 * @author XuGaoran
 * @since 2024-01-04
 * 
 * @implNote 这编写该接口的时候发现，这个接口其实并没有写到容器中，看BaseMapper, Mapper源码可以发现
 *           其中没有加上mybatis的@Mapper的注解，这会导致SpringBoot没有办法找到mapper, 所以需要手动加上对应的
 *           注解
 */
@Mapper
public interface YearCountryNppMapper extends BaseMapper<YearCountryNpp> {
    /**
     * 通过年份来查询对应的NPP
     * 
     * @param year 年份
     * @return 按照年份查出来对应城市的NPP
     */
    List<CountryNpp> selectByYear(int year);

    /**
     * 通过城市来查询对应的NPP
     * 
     * @param country 城市名称
     * @return 按照城市查出来对应时间的NPP
     */
    List<YearNpp> selectByCountry(String country);

    /**
     * 查询对应城市的最大/最小/平均碳通量
     * 
     * @param country 需要查询的城市
     * @return 返回结果
     */
    FunctionValues selectValueByCountry(String country);

    /**
     * 查询对应年份的最大/最小/平均碳通量
     * 
     * @param year 需要查询的年份
     * @return 返回结果
     */
    FunctionValues selectValueByYear(Integer year);
}
